package d01_internalClass;

public class Test04 {
    public static void main(String[] args) {
        /*
        * 匿名内部类
        *   是一种特殊的局部内部类；所谓匿名：指的是程序员不需要为这个类申明名字
        * 语法：
        *   new 类或接口（参数值...）{
        *      类体（一般是方法重写）
        *   }
        *
        * 特点：匿名内部类本质就是一个子类，并会立即创建出一个子类对象
        * 作用：用于方便的创建一个子类。
        *
        * */
        Animal c=new Cat();
        c.cry();
        //匿名内部类
        Animal dog=new Animal() {
            @Override
            public void cry() {
                System.out.println("\uD83D\uDC15汪汪的叫~~~~~");
            }
        };
        dog.cry();
    }
}
abstract class Animal{
    public abstract void cry();
}
class Cat extends Animal{
    @Override
    public void cry() {
        System.out.println("🐱喵喵的叫~~~");
    }
}
//class Dog extends Animal{
//
//    @Override
//    public void cry() {
//        System.out.println("🐕汪汪的叫~~~~~");
//    }
//}
